;Assembler header file for WimpExtend
;written by DefMod (Dec 31 2005) on Sat Dec 31 14:11:43 2005
;Richard Sargeant, sargeant@arcade.demon.co.uk, 04-Mar-1999

        [       :LNOT: :DEF: WimpExtend_Hdr
        GBLS    WimpExtend_Hdr

        [       :LNOT: :DEF: Get_Types
        GBLS    Get_Types
        ]
        [       :LNOT: :DEF: Types_Hdr
Get_Types                       SETS    "GET oslib/Types.Hdr"
        |
Get_Types                       SETS    ""
        ]
        $Get_Types

        [       :LNOT: :DEF: Get_OS
        GBLS    Get_OS
        ]
        [       :LNOT: :DEF: OS_Hdr
Get_OS                          SETS    "GET oslib/OS.Hdr"
        |
Get_OS                          SETS    ""
        ]
        $Get_OS

        [       :LNOT: :DEF: Get_OSSpriteOp
        GBLS    Get_OSSpriteOp
        ]
        [       :LNOT: :DEF: OSSpriteOp_Hdr
Get_OSSpriteOp                  SETS    "GET oslib/OSSpriteOp.Hdr"
        |
Get_OSSpriteOp                  SETS    ""
        ]
        $Get_OSSpriteOp

        [       :LNOT: :DEF: Get_Wimp
        GBLS    Get_Wimp
        ]
        [       :LNOT: :DEF: Wimp_Hdr
Get_Wimp                        SETS    "GET oslib/Wimp.Hdr"
        |
Get_Wimp                        SETS    ""
        ]
        $Get_Wimp

;Symbols for structure offsets and sizes
                                ^       0
WimpExtend_FurnitureSizes_w     #       Wimp_W
WimpExtend_FurnitureSizes_border_widths #       OS_Box
WimpExtend_FurnitureSizes_back_width #       Int
WimpExtend_FurnitureSizes_close_width #       Int
WimpExtend_FurnitureSizes_reserved1 #       Int
WimpExtend_FurnitureSizes_title_width #       Int
WimpExtend_FurnitureSizes_reserved2 #       Int
WimpExtend_FurnitureSizes_iconise_width #       Int
WimpExtend_FurnitureSizes_toggle_size_width #       Int
WimpExtend_FurnitureSizes_toggle_size_height #       Int
WimpExtend_FurnitureSizes_vertical_scroll_upper_gap #       Int
WimpExtend_FurnitureSizes_up_arrow_height #       Int
WimpExtend_FurnitureSizes_vertical_scroll_well_height #       Int
WimpExtend_FurnitureSizes_down_arrow_height #       Int
WimpExtend_FurnitureSizes_vertical_scroll_lower_gap #       Int
WimpExtend_FurnitureSizes_adjust_size_height #       Int
WimpExtend_FurnitureSizes_adjust_size_width #       Int
WimpExtend_FurnitureSizes_horizontal_scroll_right_gap #       Int
WimpExtend_FurnitureSizes_right_arrow_width #       Int
WimpExtend_FurnitureSizes_horizontal_scroll_well_width #       Int
WimpExtend_FurnitureSizes_left_arrow_width #       Int
WimpExtend_FurnitureSizes_horizontal_scroll_left_gap #       Int
WimpExtend_FurnitureSizes       *       @


;Symbols for SWI's and SWI reason codes
XWimp_Extend                    *       &600FB
Wimp_Extend                     *       &400FB

WimpExtend_GetParent            *       &6
   ;Entry
   ;  R0 = &6
   ;  R1 = w (Wimp_W)
   ;Exit
   ;  R0 = parent (Wimp_W)

WimpExtend_GetFrontChild        *       &7
   ;Entry
   ;  R0 = &7
   ;  R1 = w (Wimp_W)
   ;Exit
   ;  R0 = child (Wimp_W)

WimpExtend_GetBackChild         *       &8
   ;Entry
   ;  R0 = &8
   ;  R1 = w (Wimp_W)
   ;Exit
   ;  R0 = child (Wimp_W)

WimpExtend_GetSiblingUnder      *       &9
   ;Entry
   ;  R0 = &9
   ;  R1 = w (Wimp_W)
   ;Exit
   ;  R0 = sibling (Wimp_W)

WimpExtend_GetSiblingOver       *       &A
   ;Entry
   ;  R0 = &A
   ;  R1 = w (Wimp_W)
   ;Exit
   ;  R0 = sibling (Wimp_W)

WimpExtend_GetFurnitureSizes    *       &B
   ;Entry
   ;  R0 = &B
   ;  R1 = sizes (pointer to WimpExtend_FurnitureSizes)

WimpExtend_GetSpriteAddress     *       &D
   ;Entry
   ;  R0 = &D
   ;  R1 -> sprite_area (OSSpriteOp_Area)
   ;  R2 -> sprite_name (Char)
   ;Exit
   ;  R1 -> area (OSSpriteOp_Area)
   ;  R2 -> sprite (OSSpriteOp_Header)

        ]
        END
